package com.sloera.interceptor;

import com.elvishew.xlog.LogItem;
import com.elvishew.xlog.interceptor.AbstractFilterInterceptor;

public class XlogInterceptor extends AbstractFilterInterceptor {


    private static volatile XlogInterceptor instance;
    /**
     * 为{@code true}输出日志
     */
    private static boolean status = false;


    private XlogInterceptor() {

    }


    public static void setStatus(boolean status) {
        XlogInterceptor.status = status;
    }

    @Override
    protected boolean reject(LogItem log) {
        if (status) {
            return false;
        }
        return true;
    }


    public static XlogInterceptor getInstance() {
        // 对象实例化时与否判断（不使用同步代码块，instance不等于null时，直接返回对象，提高运行效率）
        if (instance == null) {
            //同步代码块（对象未初始化时，使用同步代码块，保证多线程访问时对象在第一次创建后，不再重复被创建）
            synchronized (XlogInterceptor.class) {
                //未初始化，则初始instance变量
                if (instance == null) {
                    instance = new XlogInterceptor();
                }
            }
        }
        return instance;
    }
}
